home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World Interactive 7
/
PC World Interactive 7.iso
/
program
/
qbprog.EXE
/
LISTE.BAS
< prev
next >
Wrap
BASIC Source File
|
1995-11-12
|
2KB
|
73 lines
'Bütün dizin ve dosyalarì uzunluklarìyla bulan program modülü
'Her iki versiyonda da çalìƒìr
'QBX /QBX ƒeklinde veya QB /L QB ƒeklinde yüklenmelidir
DECLARE FUNCTION Dizin$ (Ara$)
TYPE Dosyalar
Ax AS INTEGER
Bx AS INTEGER
Cx AS INTEGER
Dx AS INTEGER
Bp AS INTEGER
Si AS INTEGER
Di AS INTEGER
Flags AS INTEGER
Ds AS INTEGER
Es AS INTEGER
Dosya AS STRING * 64 'Dosya ismi bu deºiƒkende olacak
END TYPE
DECLARE SUB InterruptX (Kesme AS INTEGER, Git AS Dosyalar, Gel AS Dosyalar)
CLS
Ara$ = "*.*"
Bulundu$ = Dizin$(Ara$)
DO WHILE LEN(Bulundu$)
DosyaAdsonu = INSTR(31, Bulundu$, CHR$(0))
PRINT LEFT$(MID$(Bulundu$, 31, DosyaAdsonu - 31) + SPACE$(12), 12);
IF (ASC(MID$(Bulundu$, 22, 4)) AND &H10) THEN
PRINT "<Diz>"
ELSE
PRINT USING "###,###,###"; CVL(MID$(Bulundu$, 27, 4))
END IF
Bulundu$ = Dizin$("")
LOOP
FUNCTION Dizin$ (Ara$) STATIC
DIM DiskTransferYeri AS STRING * 44, Bak AS Dosyalar
Bak.Ax = &H1A00
Bak.Dx = VARPTR(DiskTransferYeri)
Bak.Ds = VARSEG(DiskTransferYeri)
InterruptX &H21, Bak, Bak
IF LEN(Ara$) THEN
Ara$ = Ara$ + CHR$(0)
Bak.Dosya = Ara$
Bak.Ax = &H4E00
Bak.Cx = 1 + 2 + 4 + 16 + 32 'Bütün dosya ve dizinlere bak
'+1 = Normal dosyalar dahil
'+2 = Gizli dosyalar dahil
'+4 = Sistem dosyalarì dahil
'+8 = Disk labeli dahil
'+16 = Alt Dizinler dahil
'+32 = Arsiv dosyalarì dahil
Bak.Dx = VARPTR(Bak.Dosya)
Bak.Ds = VARSEG(Bak.Dosya)
ELSE
Bak.Ax = &H4F00
END IF
InterruptX &H21, Bak, Bak
IF Bak.Flags AND 1 THEN 'Bulunamadì
Dizin$ = ""
ELSE
Dizin$ = DiskTransferYeri 'Bulundu
END IF
END FUNCTION